package cn.cqie.attendance.student.mapper;


import cn.cqie.attendance.student.domian.*;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 学生信息Mapper接口
 * 
 * @author xhd
 * @date 2021-06-18
 */
@Mapper
@Repository
public interface StudentMapper
{


    /**
     * 通过Id查询学生信息
     * @param stuId
     * @return student
     */
    Student queryStudentById(@Param("stuId") Long stuId);

    /**
     * 学生实训小组列表查询
     * @param stuId
     * @return studentList
     */
     List<ResultStudent> queryStudentList(@Param("stuId") Long stuId);

     /**查询标准学时*/
     float queryCourseHourse(@Param("stuId")Long stuId,@Param("courseName")String courseName);
     /*查询自学学时*/
    String querySelfHourse(@Param("stuId")Long stuId,@Param("courseName")String courseName);


    /**
     * 学生实训成绩列表查询
     * @param stuId
     * @return groupScoreList
     */
    List<ResultScore> queryStudentGroupItemScore(@Param("stuId") Long stuId);

    /**
     * 学生实训小组成绩列表排行查询
     * @param courseId
     * @return groupScoreList
     */
    List<Student> queryStudentGroupItemScoreRankNo(@Param("courseId") Long courseId);



    /**
     * @param stuId 学生id
     * @param email 学生邮箱
     * @return 返回修改结果 1成功 0失败
     * 修改学生邮箱
     */
    int updateEmail(@Param("stuId") Long stuId,@Param("email") String email);

    /**
     * @param stuId 学生id
     * @param phone 学生电话号码
     * 修改学生电话号码
     */
    int updatePhone(@Param("stuId")Long stuId,@Param("phone") String phone);

    /**
     * 学生上传头像
     * @param filePath
     * @param stuId
     * */
    int uploadStudentFace(@Param("stuId") Long stuId, @Param("filePath") String filePath);

    /**
     * 条件查询学生实训课程信息
     * @param course
     */
    List<Course>  queryStudentCourseByInfo(QueryCourse course);


    /**
     * 条件查询学生实训作业信息列表
     * @param homework
     */
    List<ResultHomework> queryStudentTaskByInfo(QueryHomework homework);

    /**
     * 学生实训作业内容查询
     * @param
     */
    List<ResultHomework> queryStudentTaskInfoById(@Param("phId") Long phId, @Param("homId") Long homId);

    /**
     * @param
     *
     */
//    int saveStudentWorkContent(@Param("id") Long id,@Param("content") String content);
//    int saveStudentWorkFile(@Param("id") Long id,@Param("filePath") String filePath);
    int insertAttachment(@Param("filePath") String filePath,@Param("homeworkType") int homeworkType,@Param("phId") Long phId,@Param("homId") Long homId);
    int updateHomework(@Param("phId")Long phId,@Param("homId")Long homId,@Param("answerContent")String answerContent,@Param("status")int status);


    /**
     * 草稿内容查询
     * */
    ResultHomework queryDraftInfo(@Param("status") int status,@Param("phId")  Long phId,@Param("homId")  Long homId);

    /**
     * 查询作业批复情况
     * @param
     * */
    Homework queryHomeworkApproval(@Param("phId") Long phId,@Param("homId")Long homId,@Param("stuId")Long stuId);

    /**
     * 查询学生的考勤记录
     * @param stuId
     * */
    List<ResultAttendance> queryStudentAttendance(@Param("stuId") Long stuId);

    /**
     * 查询学生的考勤记录
     * @param stuId,pageNum,pageSize
     * */
    List<ResultAttendance> queryStudentAttendanceRecord(@Param("stuId") Long stuId);

    /**
     * 下拉框数据查询，通过学生id查询该学生所有的课程
     * @param stuId
     * @return courseList
     * */
    List<Course> queryStudentCourseById(@Param("stuId") Long stuId);

    /**
     * 下拉框数据查询，通过学生id查询该学生实训老师
     * @param stuId
     * @return trainteacherCourseList
     */
    List<TrainteacherCourse> queryStudentTrainteacherById(@Param("stuId") Long stuId);

    /**
     * 下拉框数据查询，通过学生id查询该学生责任老师
     * @param stuId
     * @return courseList
     * */
    List<Course> queryStudentResponseteacherById(@Param("stuId") Long stuId);


}
